package conservare.negocio;

import java.util.List;

import javax.persistence.NoResultException;

import conservare.dao.PessoaDAO;
import conservare.modelo.Pessoa;
import conservare.modelo.CpfCnpj;
import conservare.modelo.Endereco;
import conservare.modelo.type.TipoPessoa;

public class PessoaRN {
	
	private PessoaDAO clienteDAO;
	
	public PessoaRN(){
		this.clienteDAO = new PessoaDAO();
	}
	
	
	public Pessoa salvar(Pessoa pessoa){
		Pessoa clienteSalvo = this.clienteDAO.salvar(pessoa);
		return clienteSalvo;
	}
	
	public Pessoa getById(Integer id){
		return this.clienteDAO.getById(id);
	}
	
	public Pessoa getByNumeroCpfCnpj(String numero) throws NoResultException{
		
		Pessoa retorno = null;
		if(numero != null){
			try {
				retorno = clienteDAO.getByNumeroCpfCnpj(numero);
			} catch (NoResultException e) {
				throw new NoResultException();
			}
		}
		return retorno;
	}
	
	public List<Pessoa> getTodos(){
		return this.clienteDAO.getTodos();
	}
	
	public Pessoa getNovo(){
		Pessoa novaPessoa = new Pessoa();
		novaPessoa.setEndereco(new Endereco());
		novaPessoa.setCpfCnpj(new CpfCnpj());
		novaPessoa.setTipoPessoa(TipoPessoa.PF);
		return novaPessoa;
	}
	
}
